package com.henu.acmrating.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class DateUtils {

    //当前时间
    //public static  Date DATE_NOW=new Date();

//    private static Long TIME_8 = 1000 * 60 * 60 * 8L;
    private static Long TIME_5 = 1000 * 60 * 60 * 5L;

    /**
     * 得到完整的时间戳，格式:yyyyMMddHHmmssSSS(年月日时分秒毫秒)
     * @return 完整的时间戳
     */
    public static String getFullTimeStamp(){
        return new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date()) ;
    }

    /**
     * 得到简单的时间戳，格式:yyyyMMdd(年月日)
     * @return 简单的时间戳
     */
    public static String getSimpleTimeStamp(){
        return new SimpleDateFormat("yyyyMMdd").format(new Date()) ;
    }

    /**
     * 根据指定的格式得到时间戳
     * @param pattern 指定的格式
     * @return 指定格式的时间戳
     */
    public static String getTimeStampByPattern(String pattern){
        return new SimpleDateFormat(pattern).format(new Date()) ;
    }

    /**
     * 得到当前日期格式化后的字符串，格式：yyyy-MM-dd(年-月-日)
     * @return 当前日期格式化后的字符串
     */
    public static String getTodayStr(){
        return new SimpleDateFormat("yyyy-MM-dd").format(new Date()) ;
    }

    /**
     * 时间戳，格式:yyyy-MM-dd HH:mm:ss(年-月-日  时：分：秒)
     * @return 简单的时间戳
     */
    public static String getDateTimeStamp(Date date){
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date) ;
    }

    public static Date getDateByString(String str){
        if(str == null) return null;
        SimpleDateFormat sim=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        Date dateTime = null;
        try {
            dateTime = sim.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateTime;
    }

    /*
     String str = "02/Dec/2019:12:59:10 +0800";
     SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);
     */

    public static Date getEnglishDate(String str)  {
        if(str == null) return null;
        SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy HH:mm", Locale.ENGLISH);
        Date dateTime = null;
        try {
            dateTime = sdf.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return new Date(dateTime.getTime() + TIME_5);

    }

    public static Date timeStamp2Date(Long timeLong) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//要转换的时间格式
        Date date;
        try {
            return sdf.parse(sdf.format(timeLong));
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }
}